<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<!-- $LastChangedDate: 2010-02-05 16:06:48 -0500 (Fri, 05 Feb 2010) $ -->
<!-- Copyright (C) 2004,2009 Jim Brooks http://www.palomino3d.org -->
<head>
<title>Palomino Flight Simulator - Manual</title>
<link rel='stylesheet' type='text/css' href='manual.css'>
<link rel='icon' type='image/png' href='images/favicon.png'/>
</head>
<body>

<h1>Palomino Flight Simulator - Manual</h1>
<p>
<a href='http://www.palomino3d.org'>http://www.palomino3d.org</a>

<!-- ------------------------------------------------------------------------ -->
<hr>
<h2>Index</h2>
<ul>
<li><a href='#Keyboard'>Keyboard</a></li>
<li><a href='#Command-line Args'>Command-line Args</a></li>
<li><a href='#Configuration Files'>Configuration Files</a></li>
<li><a href='#Joystick'>Joystick</a></li>
<li><a href='#Problems'>Problems</a></li>
</ul>

<!-- ------------------------------------------------------------------------ -->
<a name='Keyboard'></a>
<hr>
<h2>Keyboard</h2>
<table border cellpadding='2' width='100%'>
<tr>
    <td>Mod key:</td>
    <td>Mod key is any of Shift/Ctrl/Alt.<br>Using Shift is suggested unless the window manager reserves that key combination.</td>
</tr>
<tr>
    <td>CTRL-c</td>
    <td>exit program</td>
</tr>
<tr>
    <td>TAB, ` (back-tick)</td>
    <td>TAB: cycle view mode, ` (back-tick) switch control to chase-view to next view</td>
</tr>
<tr>
    <td>cursor left | right</td>
    <td>roll<br>manipulator-mode : move left/right, Mod-Left/Right : yaw</td>
</tr>
<tr>
    <td>cursor up | down</td>
    <td>pitch<br>manipulator-mode : move forward/backward, Mod-Up/Down : pitch</td>
</tr>
<tr>
    <td>PageUp | PageDown</td>
    <td>manipulator-mode : move up/down</td>
</tr>
<tr>
    <td>key-pad: Ins | Del</td>
    <td>yaw</td>
</tr>
<tr>
    <td>key-pad: arrows</td>
    <td>OTW view: change direction, chase-view: rotate</td>
</tr>
<tr>
    <td>key-pad: - + 5/center</td>
    <td>chase-view: zoom-in, zoom-out, reset</td>
</tr>
<tr>
    <td>- = 0..9</td>
    <td>throttle</td>
</tr>
<tr>
    <td>BACKSPACE | DELETE</td>
    <td>reset program<br>manipulator-mode : restore default viewpoint</td>
</tr>
<tr>
    <td>g</td>
    <td>landing gear</td>
</tr>
<tr>
    <td>b</td>
    <td>brakes</td>
</tr>
<tr>
    <td>SPACE</td>
    <td>fire weapon<br>manipulator-mode: SPACE: restore viewpoint<br>manipulator-mode: Mod-SPACE: save viewpoint</td>
</tr>
<tr>
    <td>t</td>
    <td>switch targets</td>
</tr>
<tr>
    <td>'[' ']' or joystick buttons 4,5</td>
    <td>swing wings (F-14 Tomcat) or bay-doors (Space Shuttle)</td>
</tr>
<tr>
    <td>F1</td>
    <td>start GUI</td>
</tr>
<tr><!-- F5 chosen since a key at an edge is easier to hit -->
    <td>F5, Mod-F5</td>
    <td>F5: plays a replay.<br>Mod-F5: starts recording a new replay<br>Mod-F5 again: stops recording and saves to file.</td>
</tr>
<tr>
    <td>F8, Mod-F8</td>
    <td>cycle brightness</td>
</tr>
<tr>
    <td>F9</td>
    <td>toggle automatic coordinated-turn (propeller aircraft)</td>
</tr>
<tr>
    <td>Mod-F9</td>
    <td>toggle wireframe mode</td>
</tr>
<tr>
    <td>F10</td>
    <td>toggle stalling</td>
</tr>
<tr>
    <td>Mod-F11</td>
    <td>reload scene-graph</td>
</tr>
<tr>
    <td>F12</td>
    <td>display OSG statistics, Mod-F12 to dump scene graph to file</td>
</tr>
</table>

<!-- ------------------------------------------------------------------------ -->
<a name='Command-line Args'></a>
<hr>
<h2>Command-line Args</h2>
<p>
<p>
Args override preceding args and any counterparts in the configuration file.
</p>

<!-- .................................... game ............................. -->
<h3>Args - Game</h3>
<table border cellpadding='2' width='100%'>
<tr>
    <td width='30%'>-spitfire -corsair -p51 -f86 -f14 -f15 -f16 -f18 -sr71 -mirage -su37</td>
    <td width='70%'>Select aircraft model.</td>
</tr>
<tr>
    <td width='30%'>-coturn -no-coturn</td>
    <td width='70%'>Whether program should automatically coordinate a turn for player.</td>
</tr>
<tr>
    <td width='30%'>-takeoff -front-slot -rear-slot</td>
    <td width='70%'>Begin at takeoff, specify which slot on aircraft carrier.</td>
</tr>
<tr>
    <td width='30%'>-no-physics -no-stall</td>
    <td width='70%'>Disable physics, disable aircraft stalling.</td>
</tr>
<tr>
    <td width='30%'>-hour</td>
    <td width='70%'>Set time-of-day.</td>
</tr>
<tr>
    <td width='30%'>-cheat or -wimp</td>
    <td width='70%'>Disable game mode (no enemies).</td>
</tr>
</table>

<!-- ............................... display ............................... -->
<h3>Args - Display</h3>
<table border cellpadding='2' width='100%'>
<tr>
    <td width='30%'>-wh width height</td>
    <td width='70%'>Set window size.</td>
</tr>
<tr>
    <td width='30%'>-brightness float</td>
    <td width='70%'>1.0 is normal.</td>
</tr>
</table>

<!-- ....................... enable/disable features ....................... -->
<h3>Args - Features</h3>
<table border cellpadding='2' width='100%'>
<tr>
    <td width='30%'>-no-light</td>
    <td width='70%'>Disable lighting.</td>
</tr>
<tr>
    <td width='30%'>-no-shaders</td>
    <td width='70%'>Disable shaders.</td>
</tr>
<tr>
    <td width='30%'>-no-shadows -fast-shadows -soft-shadows</td>
    <td width='70%'>Soft shadows are slower.</td>
</tr>
<tr>
    <td width='30%'>-motion-blur or -no-motion-blur</td>
    <td width='70%'>Doesn't work on all video cards.</td>
</tr>
<tr>
    <td width='30%'>-no-sky -fog -no-fog -no-clouds</td>
    <td width='70%'>Control atmosphere.</td>
</tr>
<tr>
    <td width='30%'>-no-weather -weather -rain -snow</td>
    <td width='70%'>Control weather.</td>
</tr>
</table>

<!-- ............................  sound  .................................. -->
<h3>Args - Sound</h3>
<table border cellpadding='2' width='100%'>
<tr>
    <td width='30%'>-no-sound or -ns</td>
    <td width='70%'>Disable sound.</td>
</tr>
<tr>
    <td width='30%'>-song filename -song-volume float</td>
    <td width='70%'>Play a theme song (if sound library is capable).</td>
</tr>
</table>

<!-- .............................. performance ............................ -->
<h3>Args - Performance</h3>
<table border cellpadding='2' width='100%'>
<tr>
    <td width='30%'>-fast</td>
    <td width='70%'>Gains speed but loses rendering quality and capabilities.</td>
</tr>
<tr>
    <td width='30%'>-speed n</td>
    <td width='70%'>Change simulation speed (time compression or fast-motion).</td>
</tr>
<tr>
    <td width='30%'>-timer-gettimeofday</td>
    <td width='70%'>Force using specific time functions.</td>
</tr>
</table>

<!-- ............................... joystick .............................. -->
<h3>Args - Joystick</h3>
<table border cellpadding='2' width='100%'>
<tr>
    <td width='30%'>-j (or any -j* arg)</td>
    <td width='70%'>Enable joystick.</td>
</tr>
<tr>
    <td width='30%'>-jn number</td>
    <td width='70%'>Select joystick by number (if supported).  0 is the first joystick.</td>
</tr>
<tr>
    <td width='30%'>-jp</td>
    <td width='70%'>Print joystick values for calibration.</td>
</tr>
<tr>
    <td width='30%'>-jc confFile</td>
    <td width='70%'>Load joystick configuration from file.</td>
</tr>
<tr>
    <td width='30%'>-jlinux -jwindows</td>
    <td width='70%'>Use specific joystick driver.</td>
</tr>
</table>

<!-- .............................. special modes .......................... -->
<h3>Args - Special Modes</h3>
<table border cellpadding='2' width='100%'>
<tr>
    <td width='30%'>-debug or -gdb</td>
    <td width='70%'>Enable trapping to debugger if assert fails (if compiled with DEBUG=1).</td>
</tr>
<tr>
    <td width='30%'>-t</td>
    <td width='70%'>Enable manipulator mode (for testing or constructing a scene).</td>
</tr>
<tr>
    <td width='30%'>-wire</td>
    <td width='70%'>Render in wireframe mode.</td>
</tr>
<tr>
    <td width='30%'>-dump-full</td>
    <td width='70%'>Dump as much as possible of the scene-graph (consumes more memory).</td>
</tr>
</table>

<!-- ........................ system/library specific ...................... -->
<h3>Args - System Specific and Optional</h3>
<table border cellpadding='2' width='100%'>
<tr>
    <td width='30%'>-no-stats</td>
    <td width='70%'>Disable OSG statistics.</td>
</tr>
<tr>
    <td width='30%'>-no-osg-opt</td>
    <td width='70%'>Disable OSG optimizer.</td>
</tr>
<tr>
    <td width='30%'>-no-sdl</td>
    <td width='70%'>Disable SDL.</td>
</tr>
</table>

<p></p>

<!-- ------------------------------------------------------------------------ -->
<a name='Configuration Files'></a>
<hr>
<h2>Configuration Files</h2>

<a name='palomino.conf'></a>
<h3>data/palomino.conf</h3>
<p>
User-editable configuration file (subject-to-change in future versions).
</p>

<a name='Binary Configuration'></a>
<h3>~/.palomino</h3>
<p>
Not user-editable.
<br>This subdirectory of the user's home directory
contains binary data files (configuration, replay, etc).
</p>

<!-- ------------------------------------------------------------------------ -->
<a name='Joystick'></a>
<hr>
<h2>Joystick</h2>
<p>
Program can use 4 joystick axises: roll, pitch, yaw, throttle.
</p>
<p>
Where available, program can use SDL, Linux, or Windows joystick drivers.
</p>
<p>
Joystick and aircraft maneuverability have separate configurations.
<br>Rate-of-roll/pitch/yaw is defined by data/physics_*.conf in degrees/second.
</p>
<h3>Enabling Joystick</h3>
<p>
Pass -j to enable joystick.
<br>Pass -jn n to select which joystick if more than one is connected.
</p>
<h3>Calibrating Joystick</h3>
<p>
Pass -jp to print joystick values in order to calibrate joystick.
Then edit data/joystick.conf.
<br>Pass -jc [filename] to specify pathname to your custom joystick configuration file ("joystick.conf").
</p>
<h3>Joystick Problems:</h3>
<p>
<ul>
    <li>Delayed reaction to joystick input:
    <br>Try adjusting JoystickInputQueueOverflow or JoystickTickFreq in .conf.
    </li>

    <li>Linux: Try <code>modprobe joydev</code> or running as root.
    </li>

    <li>FreeBSD: Try installing SDL or the port devel/linux-js.
    <br>linux-js emulates a Linux joystick driver at /dev/input/js0
    </li>
</ul>
</p>

<!-- ------------------------------------------------------------------------ -->
<a name='Problems'></a>
<hr>
<h2>Problems</h2>
<ul>

  <li>Before reporting a problem:
  </li>
      <p>
      To isolate the problem, try disabling features:
      <br>-no-sdl or -no-sound or -no-shaders etc
      <br>Also try editing the top-level CMakeLists.txt to compile without optional libraries.
      <br>Or try a different system.
      </p>
    
  <li>If GUI doesn't show:
  </li>
      <p>
      Then the GUI wasn't compiled.
      To compile it, <a href='http://www.fltk.org'>FTLK</a> is required.
      cmake should show:
      <br><code>-- Found FLTK: /usr/lib/libfltk.so</code>
      </p>
      
  <li>Fails to load 3D models (OSG plugin error):
  </li>
      <p>
      Ensure that LD_LIBRARY_PATH (DYLD_LIBRAY_PATH Apple Mac) points to OSG plugin libraries:
      <br>/usr/local/lib/osgPlugins-N.N.N
      </p>
      
  <li>If graphics window has artifacts or mis-renders:
  </li>
      <p>
      Try disabling options in this order:
      <ol>
        <li>-no-motion-blur</li>
        <li>-no-osg-opt</li>
      </ol>
      </p>
      
  <li>"there is no soundcard" yet sound works (printed by MIDI module of SDL, disregard it).
  </li>
      <p>
      </p>
      
</ul>

<!-- ------------------------------------------------------------------------ -->
<hr>
<p align='center'>
<font size='-2'> &copy; 2004,2009 Jim Brooks
<a href='http://www.palomino3d.org'>http://www.palomino3d.org</a>
<br>
<!-- hhmts start -->
Last modified: Fri Feb  5 14:47:21 CST 2010
<!-- hhmts end -->
</font>

</body>
</html>
